

GoToIfQuestion(@Filter,"Do you have chat messages blocked?")
GoTo(@Beginning)
@Filter:
OnChatMessage(@RunAndHideChat)

@Beginning:
OnCoordsChanged(@CoordsChange,%oldX,%oldY)

OnServerMessage(@ServMes)

OnNPCAppeared(@NewNPC,%ID,%NPCX,%NPCY,%NPCType)
OnNPCMoved(@MovNPC,%ID,%NPCX,%NPCY,%NPCType)
OnItemAppeared(@NewItem,%ItemID,%X,%Y)
SetVarNum(%OkToMove,1)
OnStatsChanged(@StatsChange,%Stat)
SetVarNum(%LastMonst,0)
SetVarNum(%LM,0)
SetVarNum(%IdleLoops,0)

-
@LoopStart:
Wait(70)

GoToIfVarEqualNum(@NoDigging,%OkToMove,0)
GoToIfInInventory(@DigBones,20)
@NoDigging:
AddVarNum(%IdleLoops,1)
GoToIfVarAboveNum(@AttackLM,%IdleLoops,3)
GoTo(@LoopStart)


@GrabBones:
ActionVarVar(%X,%Y)
TakeItemVarVar(%X,%Y,20)
Wait(20)
GoTo(@DontGrabBones)

@GrabCoins:
ActionVarVar(%X,%Y)
TakeItemVarVar(%X,%Y,10)
Wait(20)
GoTo(@DontGrabCoins)

@GrabChaos:
ActionVarVar(%X,%Y)
TakeItemVarVar(%X,%Y,41)
Wait(20)
GoTo(@DontGrabChaos)

@GrabCosmic:
ActionVarVar(%X,%Y)
TakeItemVarVar(%X,%Y,46)
Wait(20)
GoTo(@DontGrabCosmic)

@DigBones:
GoToIfVarEqualNum(@LoopStart,%OkToMove,0)
@DigBonesLoop:
SetVarNum(%OkToMove,0)
UseItemByID(20)
Wait(30)
GoToIfInInventory(@DigBonesLoop,20)
SetVarNum(%OkToMove,1)
Debug("Bones ar buried, can move again")
GoTo(@LoopStart)
-

@AttackLM:
Debug("Was idling, let's just attack")
SetVar(%LastMonst,%LM)
SetVarNum(%IdleLoops,0)
SetVarNum(%OkToMove,1)
GoTo(@LoopStart)


@MovNPC:
GoTo(@NewNPC)


@NewNPC:

SetVarNum(%LastMonst,0)

SetVarMyHP(%HP)
--- there are 2 kinds of rats
GoToIfVarEqualNum(@Fight,%NPCType,179)
GoToIfVarEqualNum(@Fight,%NPCType,45)
ERet()
@Fight:
SetVar(%LM,%ID)

-Debug("My HP is:")
-DebugVar(%HP)
GoToIfVarAboveNum(@Fight2,%HP,10)
GoToIfVarEqualNum(@Fight2,%HP,0)
SetVar(%LastMonst,%ID)
Debug("We can't attack atm, let's wait for heal")
ERet()
@Fight2:
GoToIfVarEqualNum(@Fight3,%OkToMove,1)
-Debug("Can't move atm")
ERet()
@Fight3:

SetVarMyX(%MaxX)
AddVarNum(%MaxX,15)
SetVarMyX(%MinX)
AddVarNum(%MinX,-15)
GoToIfVarBetween(@Fight4,%NPCX,%MinX,%MaxX)
Debug("X is too far")
DebugVar(%MinX,%MaxX,%NPCX)
ERet()
@Fight4:

SetVarMyY(%MaxY)
AddVarNum(%MaxY,15)
SetVarMyY(%MinY)
AddVarNum(%MinY,-15)
GoToIfVarBetween(@Fight5,%NPCY,%MinY,%MaxY)
Debug("Y is too far")
DebugVar(%MinY,%MaxY,%NPCY)
ERet()
@Fight5:

-GoToIfVarBetweenNum(@Fight6,%NPCX,289,301)
-ERet()
-@Fight6:

-GoToIfVarBetweenNum(@Fight7,%NPCY,627,637)
-ERet()
-@Fight7:

SetVarNum(%OkToMove,0)
Debug("cant move")

DebugVar(%ID,%NPCX,%NPCY,%NPCType)
MoveTo(0,0)
ActionVarVar(%NPCX,%NPCY)
AttackNPCVar(%ID)
SetVarNum(%IdleLoops,0)

ERet()

@NewItem:

GoToIfVarEqualNum(@TakeItems,%OkToMove,1)
ERet()
@TakeItems:
-Debug("Item appears")
-DebugVar(%ItemID,%X,%Y)
SetVarMyX(%MX)
SetVarMyY(%MY)
GoToIfVarNotEqual(@DontGrabAnything,%X,%MX)
GoToIfVarNotEqual(@DontGrabAnything,%Y,%MY)
GoToIfVarNotEqualNum(@DontGrabBones,%ItemID,20)
GoTo(@GrabBones)
@DontGrabBones:
GoToIfVarNotEqualNum(@DontGrabCoins,%ItemID,10)
GoTo(@GrabCoins)
@DontGrabCoins:
GoToIfVarNotEqualNum(@DontGrabChaos,%ItemID,41)
GoTo(@GrabChaos)
@DontGrabChaos:
GoToIfVarNotEqualNum(@DontGrabCosmic,%ItemID,46)
GoTo(@GrabCosmic)
@DontGrabCosmic:
@DontGrabAnything:
ERet()

@StatsChange:

@CanMove:
GoToIfVarEqualNum(@SetCanMove,%Stat,3)
ERet()
@SetCanMove:
SetVarNum(%OkToMove,1)
Debug("can move")
ERet()


@CoordsChange:

SetVarMyX(%x)
SetVarMyY(%y)


GoToIfVarBelowNum(@CheckY,%y,2994)
GoTo(@CheckTeleport)
@CheckY:
GoTo(@CheckGoUp)
GoTo(@CheckTeleport)
@CheckGoUp:
Debug("Going back up")

MoveTo(298,2994)


@CheckTeleport:
SetVar(%diff,%oldX)
AddVarNum(%diff,40)
GoToIfVarAbove(@RunAndHideTele,%x,%diff)
SetVar(%diff,%oldX)
AddVarNum(%diff,-40)
GoToIfVarBelow(@RunAndHideTele,%x,%diff)

SetVar(%diff,%oldY)
AddVarNum(%diff,40)
GoToIfVarAbove(@RunAndHideTele,%y,%diff)
SetVar(%diff,%oldY)
AddVarNum(%diff,-40)
GoToIfVarBelow(@RunAndHideTele,%y,%diff)

ERet()

@ServMes:
DebugLastServerMessage()
GoToIfLastServerMessageIs(@ResetGo,"I can't get close enough")
GoToIfLastServerMessageIs(@ResetGo,"Your opponent is retreating")
ERet()
@ResetGo:
Debug("Forget this monster")
SetVarNum(%OkToMove,1)
SetVarNum(%LastMonst,0)
ERet()


@RunAndHideTele:
Wait(20)
Say(61 60 )
Debug("Saying 'What the'")
Wait(10)
Debug("Ooops we just got teleported! Must be an admin!!!")
GoTo(@RunAndHide)


@RunAndHidePick:
Debug("Ooops we just lost pickaxe! Must be an admin!!!")
GoTo(@RunAndHide)

@RunAndHideChat:
Debug("Ooops someone is talking in the game. If chat messages are blocked - its an admin!!!")
GoTo(@RunAndHide)

@RunAndHide:
StopAndLogOut()
Wait(1)



